package com.qianying.mapper;




import com.qianying.domain.*;
import org.apache.ibatis.annotations.Mapper;

import java.util.ArrayList;
import java.util.Map;

/**
 * @author zhangcr
 * @date 2023/9/7 10:31
 */
@Mapper
public interface MapMapper {

    /**
     * insert
     * @author zhangcr
     * @date 2021/5/14 16:14
     * @param param MapDataInfoEntity
     * @return
     */
    int insert(InsertParam param);

    /**
     * update
     * @author zhangcr
     * @date 2021/5/14 16:14
     * @param param MapDataInfoEntity实体类
     * @return
     */
    int update(UpdateParam param);

    /**
     * delete
     * @author zhangcr
     * @date 2021/5/14 16:14
     * @param param MapDataInfoEntity实体类
     * @return
     */
    int delete(DeleteParam param);

    /**
     * select
     * @author zhangcr
     * @date 2021/5/14 16:14
     * @param param MapDataInfoEntity实体类
     * @return
     */
    ArrayList<Map<String, Object>> select(QueryParam param);

    /**
     * 统计行数
     * @author zhangcr
     * @date 2021/5/20 8:36
     * @param param MapDataInfoEntity实体类
     * @return
     */
    Integer selectCount (QueryParam param);

    /**
     * 纯sql执行,Insert(mysql自增会自动填充内部的id属性)
     * @author zhangcr
     * @date 2020/11/26 15:28
     * @return 返回影响行  1 或者 0
     */
    int insertSql(SqlParam param);

    /**
     * 纯sql执行,Update
     * @author zhangcr
     * @date 2020/11/26 15:30
     * @return 返回影响行 1 或者 0
     */
    int updateSql(SqlParam param);

    /**
     * 纯sql执行,Delete
     * @author zhangcr
     * @date 2020/11/26 15:30
     * @return 返回影响行 1 或者 0
     */
    int deleteSql(SqlParam param);

    /**
     * 纯sql执行,Select
     * @author zhangcr
     * @date 2020/11/26 15:30
     * @return 返回ArrayList<Map<String, Object>>
     */
    ArrayList<Map<String, Object>> selectSql(SqlParam param);

    /**
     * 查询个数
     * @author zhangcr
     * @date 2021/3/15 9:36
     * @return 返回个数
     */
    int selectCountSql(SqlParam param);
}
